/**
 * 
 */
package com.miolr.module.core.api;

import java.lang.annotation.Annotation;

import javax.persistence.Transient;

import org.codehaus.jackson.map.AnnotationIntrospector;
import org.codehaus.jackson.map.JsonDeserializer;
import org.codehaus.jackson.map.KeyDeserializer;
import org.codehaus.jackson.map.annotate.JsonSerialize.Typing;
import org.codehaus.jackson.map.introspect.Annotated;
import org.codehaus.jackson.map.introspect.AnnotatedClass;
import org.codehaus.jackson.map.introspect.AnnotatedConstructor;
import org.codehaus.jackson.map.introspect.AnnotatedField;
import org.codehaus.jackson.map.introspect.AnnotatedMethod;
import org.codehaus.jackson.map.introspect.AnnotatedParameter;
import org.codehaus.jackson.type.JavaType;

/**
 * @author iday
 * 
 */
public class HibernateAnnotationIntrospector extends AnnotationIntrospector {

	@Override
	public boolean isHandled(Annotation ann) {
		return ann.annotationType() == Transient.class;
	}

	@Override
	public String findRootName(AnnotatedClass ac) {
		return null;
	}

	@Override
	public String[] findPropertiesToIgnore(AnnotatedClass ac) {
		return null;
	}

	@Override
	public Boolean findIgnoreUnknownProperties(AnnotatedClass ac) {
		return null;
	}

	@Override
	public boolean isIgnorableMethod(AnnotatedMethod m) {
		return m.hasAnnotation(Transient.class);
	}

	@Override
	public boolean isIgnorableConstructor(AnnotatedConstructor c) {
		return c.hasAnnotation(Transient.class);
	}

	@Override
	public boolean isIgnorableField(AnnotatedField f) {
		return f.hasAnnotation(Transient.class);
	}

	@Override
	public Object findSerializer(Annotated am) {
		return null;
	}

	@Override
	public Class<?> findSerializationType(Annotated a) {
		return null;
	}

	@Override
	public Typing findSerializationTyping(Annotated a) {
		return null;
	}

	@Override
	public Class<?>[] findSerializationViews(Annotated a) {
		return null;
	}

	@Override
	public String[] findSerializationPropertyOrder(AnnotatedClass ac) {
		return null;
	}

	@Override
	public Boolean findSerializationSortAlphabetically(AnnotatedClass ac) {
		return null;
	}

	@Override
	public String findGettablePropertyName(AnnotatedMethod am) {
		return null;
	}

	@Override
	public boolean hasAsValueAnnotation(AnnotatedMethod am) {
		return false;
	}

	@Override
	public String findEnumValue(Enum<?> value) {
		return null;
	}

	@Override
	public String findSerializablePropertyName(AnnotatedField af) {
		return null;
	}

	@Override
	public Object findDeserializer(Annotated am) {
		return null;
	}

	@Override
	public Class<? extends KeyDeserializer> findKeyDeserializer(Annotated am) {
		return null;
	}

	@Override
	public Class<? extends JsonDeserializer<?>> findContentDeserializer(
			Annotated am) {
		return null;
	}

	@Override
	public Class<?> findDeserializationType(Annotated am, JavaType baseType,
			String propName) {
		return null;
	}

	@Override
	public Class<?> findDeserializationKeyType(Annotated am,
			JavaType baseKeyType, String propName) {
		return null;
	}

	@Override
	public Class<?> findDeserializationContentType(Annotated am,
			JavaType baseContentType, String propName) {
		return null;
	}

	@Override
	public String findSettablePropertyName(AnnotatedMethod am) {
		return null;
	}

	@Override
	public String findDeserializablePropertyName(AnnotatedField af) {
		return null;
	}

	@Override
	public String findPropertyNameForParam(AnnotatedParameter param) {
		return null;
	}

}
